package cn.maihe.elg.operation.centers.guogu.dto.handler.req;

import cn.maihe.elg.operation.centers.guogu.dto.GuoGuBaseReqDTO;
import cn.maihe.elg.operation.common.annotation.NumberFmt;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import javax.validation.constraints.NotBlank;

/**
 * @Description 投保信息推送 请求参数
 * @Author SSX
 * @Date 2025/03/18
 */
@Data
public class GuoGuInsureApplyReq extends GuoGuBaseReqDTO {
    /**
     * 否	项目编号（密文）
     */
    
    @JSONField(name = "projectNo")
    private String projectno;
    /**
     * 否	项目名称（密文）
     */
    
    @JSONField(name = "projectName")
    private String projectname;

    /**
     * 否	标段编号（密文）
     */
    
    @JSONField(name = "bidNo")
    private String biaoduanno;

    /**
     * 否	标段名称（密文）
     */
    
    @JSONField(name = "bidName")
    private String biaoduanname;

    /**
     * 是	招标人（密文）
     */
    @NotBlank(message = "招标人不能为空")
    
    @JSONField(name = "issueName")
    private String zbr;

    /**
     * 是	招标人统一社会信用代码（密文）
     */
    @NotBlank(message = "招标人统一社会信用代码不能为空")
    
    @JSONField(name = "issueUnifyCreditCode")
    private String zbrorgnum;

    /**
     * 是	投保有效期天数（投标有效期，单位天）
     */
    @NotBlank(message = "投保有效期天数不能为空")
    @NumberFmt
    private String tbyxq;

    /**
     * 是	投保人/企业（投标企业名称）
     */
    @NotBlank(message = "投保人/企业不能为空")
    @JSONField(name = "tenderName")
    private String biddername;

    /**
     * 是	投保人/企业统一信用代码(统一社会信用代码)
     */
    @NotBlank(message = "投保人/企业统一信用代码不能为空")
    @JSONField(name = "tenderUnifyCreditCode")
    private String biddercode;

    /**
     * 是	保证金金额（元），保留两位小数
     */
    @NotBlank(message = "保证金金额不能为空")
    @NumberFmt(scale = 2)
    @JSONField(name = "offerAmount")
    private String bzjamount;

    /**
     * 是	保费（元），保留两位小数 ～
     */
    @NotBlank(message = "保费不能为空")
    @NumberFmt(scale = 2)
    private String amount;

    /**
     * 是	合同估算价（元）
     */
//    @NumberFmt(scale = 2)
//    private String reckonprice;

    /**
     * 是	交易单号（业务流水号）信用资产SaaS平台投保编号
     */
    @NotBlank(message = "交易单号不能为空")
    @JSONField(name = "tradeNo")
    private String applyno;

    /**
     * 否	投保人/ 企业基本户户名(投保企业基本户名称)~
     */
    @JSONField(name = "basicBankAccount")
    private String bankUserName;

    /**
     * 否	投保人/ 企业基本户卡号(投保企业基本户银行卡号)~
     */
    @JSONField(name = "basicBankCardNo")
    private String bankCardNum;

    /**
     * 否	投保人/ 企业基本户开户行(投保企业基本户开户银行名称)~
     */
    @JSONField(name = "basicBankName")
    private String bankName;

    /**
     * 是	投保人/ 企业联系人(投保客户联系人名称)~
     */
    @NotBlank(message = "投保人/ 企业联系人不能为空")
    @JSONField(name = "tenderLinkerName")
    private String bidderContactName;

    /**
     * 是	投保人/ 企业联系电话(投保客户联系人电话)
     */
    @NotBlank(message = "投保人/ 企业联系电话不能为空")
    @JSONField(name = "tenderLinkerMobile")
    private String bidderContactTel;

    /**
     * 否	支付完回调地址~
     */
    private String returnUrl;

    /**
     * 否	招标项目类型
     */
    @JSONField(name = "projectType")
    private String projecttype;

    /**
     * 否	支付模式~
     * 见费出单(金融机构回传支付地址)
     * 非见费出单(金融机构不需要回传支付地址，直接出单)
     */
    private String payType;

    /**
     * 否	支付渠道~
     * 只有见费出单有值
     * 支付宝
     * 微信
     * 网银支付
     * 基本户
     */
    private String payChannel;

    /**
     * 否	费率～
     * 保费类型为按费率和信用分时必填
     */
    private String rate;

    /**
     * 否	信用分～
     * 保费类型为按费率和信用分时必填
     */
    private String creditPoints;

    /**
     * 否	开标时间（yyyy-MM-dd HH:mm:ss）（密文）
     */
    
    @JSONField(name = "releaseTime")
    private String kaibiaotime;

    /**
     * 否	交易来源~
     */
    private String source;

    /**
     * 否	申请人地址(投保客户联系地址)~
     */
    @JSONField(name = "address")
    private String bidderAddress;

    /**
     * 否	招标人地址（受益人地址）(招标人地址)（密文）
     */
    
    private String zbraddress;

    /**
     * 否	招标公告发布时间 ， 格式 :yyyy-MM- ddHH:mm:ss（密文）
     */
    
    @JSONField(name = "zbpublishdate")
    private String zbfiledate;

    /**
     * 否 二级分类
     */
    private String secondCategoryCode;







    // 以下内容没有
    /**
     * 否	项目审批文号（密文）
     */
    
    private String approvalcode;
    /**
     * 否	投资项目统一代码（密文）
     */
    
    private String projectcode;

    /**
     * 是	招标人银行账号（密文）
     */
    
    private String tendererbankcode;
    /**
     * 是	招标人银行开户行（密文）
     */
    
    private String tendereropenbank;
    /**
     * 是	招标人银行账户名称（密文）
     */
    
    private String tendererbankaccount;
    /**
     * 是	招标人联系人（密文）
     */
    
    private String tenderercontact;
    /**
     * 是	招标人联系人联系方式（密文）
     */
    
    private String tenderercontacttel;
    /**
     * 是	项目所在地（行政区划代码）
     */
    private String citycode;

    /**
     * 是	保证金截止时间（yyyy-MM-dd HH:mm:ss）（密文）
     */
    
    private String bzjendtime;

    /**
     * 否	招标公告地址（密文）
     */
    
    private String tendernoticeurl;
    /**
     * 是	招标文件下载地址（密文）
     */
    
    private String tenderfileurl;
}
